#include <iostream>
#include <vector>
using namespace std;
const int MAXN = 5e3 + 5;
int n;
int a[MAXN];
int dp[MAXN];
int cnt[MAXN];
void solve() {
cin >> n;
for(int i = 1; i <= n; ++i) {
cin >> a[i];
}
for(int i = 0; i <= n + 1; ++i) {
cnt[i] = dp[i] = 0;
}
for(int i = 0; i <= n; ++i) {
if(i > 0 && dp[i] == 0) {
continue;
}
int currmax = 0;
for(int j = 1; j <= n; ++j) {
cnt[a[j]] = 0;
}
for(int j = i + 1; j <= n + 1; ++j) {
if(currmax * 2 <= (j - i) && (i - j + 1) % 2 == 0) {
if(i == 0 || j == (n + 1) || a[i] == a[j]) {
dp[j] = max(dp[j], dp[i] + 1);
}
}
++cnt[a[j]];
currmax = max(currmax, cnt[a[j]]);
}
}
cout << dp[n + 1] - 1 << endl;
}
int main() {
int t;
cin >> t;
while(t--) solve();
return 0;
}
1359A - Berland Poker | 459A - Pashmak and Garden |
1327B - Princesses and Princes | 1450F - The Struggling Contestant |
1399B - Gifts Fixing | 1138A - Sushi for Two |
982C - Cut 'em all | 931A - Friends Meeting |
1594A - Consecutive Sum Riddle | 1466A - Bovine Dilemma |
454A - Little Pony and Crystal Mine | 2A - Winner |
1622B - Berland Music | 1139B - Chocolates |
1371A - Magical Sticks | 1253A - Single Push |
706B - Interesting drink | 1265A - Beautiful String |
214A - System of Equations | 287A - IQ Test |
1108A - Two distinct points | 1064A - Make a triangle |
1245C - Constanze's Machine | 1005A - Tanya and Stairways |
1663F - In Every Generation | 1108B - Divisors of Two Integers |
1175A - From Hero to Zero | 1141A - Game 23 |
1401B - Ternary Sequence | 598A - Tricky Sum |